package com.cykj.pos.service;

import com.cykj.common.core.domain.entity.SysUser;
import com.cykj.pos.domain.BizAgentOpenAccount;
import com.cykj.pos.domain.BizMerchant;
import com.cykj.pos.domain.dto.UseRegistrationDTO;

import java.util.List;

/**
 * 1、统一商户入件Service接口
 *
 * @author weijianbo
 * @date 2021-09-01
 */
public interface IBizUserAccountService {
    /**
     * 查询上级
     *
     * @param id 1、统一商户入件ID
     * @return 1、统一商户入件
     */
    public UseRegistrationDTO selectBizUserAccountById(Long id);

    public UseRegistrationDTO selectBizUserSetId(Long id);

    /**
     * @author: haoran
     * @date: 2022/7/29
     * 方法名称： 代理管理列表查询
     */
    public List<UseRegistrationDTO> selectBizUserAccountList(UseRegistrationDTO useRegistrationDTO);
    public List<UseRegistrationDTO> exportBizUserAccountList(UseRegistrationDTO useRegistrationDTO);

    public List<UseRegistrationDTO> filtrationList(UseRegistrationDTO useRegistrationDTO);

    /**
     * 新增1、统一商户入件
     *
     * @param sysUser 1、统一商户入件
     * @return 结果
     */
    public int insertBizUser(SysUser sysUser);
    /**
     * 新增1、统一商户入件
     *
     * @param bizAgentOpenAccount 1、统一商户入件
     * @return 结果
     */
    public int insertBizAccount(BizAgentOpenAccount bizAgentOpenAccount);

    /**
     * 修改1、统一商户入件
     *
     * @param sysUser 1、统一商户入件
     * @return 结果
     */
    public int updateBizUser(SysUser sysUser);
    /**
     * 修改1、统一商户入件
     *
     * @param bizAgentOpenAccount 1、统一商户入件
     * @return 结果
     */
    public int updateBizAccount(BizAgentOpenAccount bizAgentOpenAccount);

    public int updateBizSetAccount(BizAgentOpenAccount bizAgentOpenAccount);

    /**
     * 批量删除1、统一商户入件
     *
     * @param ids 需要删除的1、统一商户入件ID
     * @return 结果
     */
    public int deleteBizUserAccountByIds(Long[] ids);

    /**
     * 删除1、统一商户入件信息
     *
     * @param id 1、统一商户入件ID
     * @return 结果
     */
    public int deleteBizUserAccountById(Long id);

    BizAgentOpenAccount getBizAgentOpenAccountByMerchId(Long merchId);

    String getPlusThreeAgentBy(Long accountId);

    List<BizMerchant> getAllChildMerchantByAccountId(Long accountId);

    void updateAccountPlusThreeByUserId(Long userId, String plusThree);
}
